{"version":3,"sources":["webpack://src/index.css","webpack://src/sass/_base.scss","webpack://src/sass/_include-media.scss","webpack://src/sass/_typography.scss","webpack://src/sass/_utils.scss","webpack://src/sass/_sidebar.scss","webpack://src/sass/_header.scss","webpack://src/sass/_realtors.scss","webpack://src/sass/_features.scss","webpack://src/sass/_story.scss","webpack://src/sass/_homes.scss","webpack://src/sass/_gallery.scss","webpack://src/sass/_footer.scss"],"names":[],"mappings":"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","file":"main.fb2b102b.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","// COLOR VARIABLES\n$color-primary: #c69963;\n$color-primary-dark: #b28451;\n\n$color-secondary: #101d2c;\n\n$color-grey-light-1: #f9f7f6;\n$color-grey-light-2: #aaa;\n\n$color-grey-dark-1: #54483a;\n$color-grey-dark-2: #6d5d4b;\n\n// FONT VARIABLES\n$font-primary: \"Nunito\", sans-serif;\n$font-display: \"Josefin Sans\", sans-serif;\n\n*,\n*::before,\n*::after {\n margin: 0;\n padding: 0;\n box-sizing: inherit;\n}\n\nhtml {\n box-sizing: border-box;\n font-size: 62.5%;\n\n @include media(\"128px') {}\n///\n/// /* Generates: */\n/// @media (min-width: 129px) {}\n///\n/// @example scss - Interval for ems is defined as `0.01` by default\n/// @include media('>20em') {}\n///\n/// /* Generates: */\n/// @media (min-width: 20.01em) {}\n///\n/// @example scss - Interval for rems is defined as `0.1` by default, to be used with `font-size: 62.5%;`\n/// @include media('>2.0rem') {}\n///\n/// /* Generates: */\n/// @media (min-width: 2.1rem) {}\n///\n$unit-intervals: (\n \"px\": 1,\n \"em\": 0.01,\n \"rem\": 0.1,\n \"\": 0,\n) !default;\n\n///\n/// Defines whether support for media queries is available, useful for creating separate stylesheets\n/// for browsers that don't support media queries.\n///\n/// @example scss - Disables support for media queries\n/// $im-media-support: false;\n/// @include media('>=tablet') {\n/// .foo {\n/// color: tomato;\n/// }\n/// }\n///\n/// /* Generates: */\n/// .foo {\n/// color: tomato;\n/// }\n///\n$im-media-support: true !default;\n\n///\n/// Selects which breakpoint to emulate when support for media queries is disabled. Media queries that start at or\n/// intercept the breakpoint will be displayed, any others will be ignored.\n///\n/// @example scss - This media query will show because it intercepts the static breakpoint\n/// $im-media-support: false;\n/// $im-no-media-breakpoint: 'desktop';\n/// @include media('>=tablet') {\n/// .foo {\n/// color: tomato;\n/// }\n/// }\n///\n/// /* Generates: */\n/// .foo {\n/// color: tomato;\n/// }\n///\n/// @example scss - This media query will NOT show because it does not intercept the desktop breakpoint\n/// $im-media-support: false;\n/// $im-no-media-breakpoint: 'tablet';\n/// @include media('>=desktop') {\n/// .foo {\n/// color: tomato;\n/// }\n/// }\n///\n/// /* No output */\n///\n$im-no-media-breakpoint: \"desktop\" !default;\n\n///\n/// Selects which media expressions are allowed in an expression for it to be used when media queries\n/// are not supported.\n///\n/// @example scss - This media query will show because it intercepts the static breakpoint and contains only accepted media expressions\n/// $im-media-support: false;\n/// $im-no-media-breakpoint: 'desktop';\n/// $im-no-media-expressions: ('screen');\n/// @include media('>=tablet', 'screen') {\n/// .foo {\n/// color: tomato;\n/// }\n/// }\n///\n/// /* Generates: */\n/// .foo {\n/// color: tomato;\n/// }\n///\n/// @example scss - This media query will NOT show because it intercepts the static breakpoint but contains a media expression that is not accepted\n/// $im-media-support: false;\n/// $im-no-media-breakpoint: 'desktop';\n/// $im-no-media-expressions: ('screen');\n/// @include media('>=tablet', 'retina2x') {\n/// .foo {\n/// color: tomato;\n/// }\n/// }\n///\n/// /* No output */\n///\n$im-no-media-expressions: (\"screen\", \"portrait\", \"landscape\") !default;\n\n////\n/// Cross-engine logging engine\n/// @author Kitty Giraudel\n/// @access private\n////\n\n///\n/// Log a message either with `@error` if supported\n/// else with `@warn`, using `feature-exists('at-error')`\n/// to detect support.\n///\n/// @param {String} $message - Message to log\n///\n@function im-log($message) {\n @if feature-exists(\"at-error\") {\n @error $message;\n } @else {\n @warn $message;\n $_: noop();\n }\n\n @return $message;\n}\n\n///\n/// Wrapper mixin for the log function so it can be used with a more friendly\n/// API than `@if im-log('..') {}` or `$_: im-log('..')`. Basically, use the function\n/// within functions because it is not possible to include a mixin in a function\n/// and use the mixin everywhere else because it's much more elegant.\n///\n/// @param {String} $message - Message to log\n///\n@mixin log($message) {\n @if im-log($message) {\n }\n}\n\n///\n/// Function with no `@return` called next to `@warn` in Sass 3.3\n/// to trigger a compiling error and stop the process.\n///\n@function noop() {\n}\n\n///\n/// Determines whether a list of conditions is intercepted by the static breakpoint.\n///\n/// @param {Arglist} $conditions - Media query conditions\n///\n/// @return {Boolean} - Returns true if the conditions are intercepted by the static breakpoint\n///\n@function im-intercepts-static-breakpoint($conditions...) {\n $no-media-breakpoint-value: map-get($breakpoints, $im-no-media-breakpoint);\n\n @if not $no-media-breakpoint-value {\n @if im-log(\"`#{$im-no-media-breakpoint}` is not a valid breakpoint.\") {\n }\n }\n\n @each $condition in $conditions {\n @if not map-has-key($media-expressions, $condition) {\n $operator: get-expression-operator($condition);\n $prefix: get-expression-prefix($operator);\n $value: get-expression-value($condition, $operator);\n\n @if ($prefix == \"max\" and $value <= $no-media-breakpoint-value) or\n ($prefix == \"min\" and $value > $no-media-breakpoint-value)\n {\n @return false;\n }\n } @else if not index($im-no-media-expressions, $condition) {\n @return false;\n }\n }\n\n @return true;\n}\n\n////\n/// Parsing engine\n/// @author Kitty Giraudel\n/// @access private\n////\n\n///\n/// Get operator of an expression\n///\n/// @param {String} $expression - Expression to extract operator from\n///\n/// @return {String} - Any of `>=`, `>`, `<=`, `<`, `≥`, `≤`\n///\n@function get-expression-operator($expression) {\n @each $operator in (\">=\", \">\", \"<=\", \"<\", \"≥\", \"≤\") {\n @if str-index($expression, $operator) {\n @return $operator;\n }\n }\n\n // It is not possible to include a mixin inside a function, so we have to\n // rely on the `im-log(..)` function rather than the `log(..)` mixin. Because\n // functions cannot be called anywhere in Sass, we need to hack the call in\n // a dummy variable, such as `$_`. If anybody ever raise a scoping issue with\n // Sass 3.3, change this line in `@if im-log(..) {}` instead.\n $_: im-log(\"No operator found in `#{$expression}`.\");\n}\n\n///\n/// Get dimension of an expression, based on a found operator\n///\n/// @param {String} $expression - Expression to extract dimension from\n/// @param {String} $operator - Operator from `$expression`\n///\n/// @return {String} - `width` or `height` (or potentially anything else)\n///\n@function get-expression-dimension($expression, $operator) {\n $operator-index: str-index($expression, $operator);\n $parsed-dimension: str-slice($expression, 0, $operator-index - 1);\n $dimension: \"width\";\n\n @if str-length($parsed-dimension) > 0 {\n $dimension: $parsed-dimension;\n }\n\n @return $dimension;\n}\n\n///\n/// Get dimension prefix based on an operator\n///\n/// @param {String} $operator - Operator\n///\n/// @return {String} - `min` or `max`\n///\n@function get-expression-prefix($operator) {\n @return if(index((\"<\", \"<=\", \"≤\"), $operator), \"max\", \"min\");\n}\n\n///\n/// Get value of an expression, based on a found operator\n///\n/// @param {String} $expression - Expression to extract value from\n/// @param {String} $operator - Operator from `$expression`\n///\n/// @return {Number} - A numeric value\n///\n@function get-expression-value($expression, $operator) {\n $operator-index: str-index($expression, $operator);\n $value: str-slice($expression, $operator-index + str-length($operator));\n\n @if map-has-key($breakpoints, $value) {\n $value: map-get($breakpoints, $value);\n } @else {\n $value: to-number($value);\n }\n\n $interval: map-get($unit-intervals, unit($value));\n\n @if not $interval {\n // It is not possible to include a mixin inside a function, so we have to\n // rely on the `im-log(..)` function rather than the `log(..)` mixin. Because\n // functions cannot be called anywhere in Sass, we need to hack the call in\n // a dummy variable, such as `$_`. If anybody ever raise a scoping issue with\n // Sass 3.3, change this line in `@if im-log(..) {}` instead.\n $_: im-log(\"Unknown unit `#{unit($value)}`.\");\n }\n\n @if $operator == \">\" {\n $value: $value + $interval;\n } @else if $operator == \"<\" {\n $value: $value - $interval;\n }\n\n @return $value;\n}\n\n///\n/// Parse an expression to return a valid media-query expression\n///\n/// @param {String} $expression - Expression to parse\n///\n/// @return {String} - Valid media query\n///\n@function parse-expression($expression) {\n // If it is part of $media-expressions, it has no operator\n // then there is no need to go any further, just return the value\n @if map-has-key($media-expressions, $expression) {\n @return map-get($media-expressions, $expression);\n }\n\n $operator: get-expression-operator($expression);\n $dimension: get-expression-dimension($expression, $operator);\n $prefix: get-expression-prefix($operator);\n $value: get-expression-value($expression, $operator);\n\n @return \"(#{$prefix}-#{$dimension}: #{$value})\";\n}\n\n///\n/// Slice `$list` between `$start` and `$end` indexes\n///\n/// @access private\n///\n/// @param {List} $list - List to slice\n/// @param {Number} $start [1] - Start index\n/// @param {Number} $end [length($list)] - End index\n///\n/// @return {List} Sliced list\n///\n@function slice($list, $start: 1, $end: length($list)) {\n @if length($list) < 1 or $start > $end {\n @return ();\n }\n\n $result: ();\n\n @for $i from $start through $end {\n $result: append($result, nth($list, $i));\n }\n\n @return $result;\n}\n\n////\n/// String to number converter\n/// @author Kitty Giraudel\n/// @access private\n////\n\n///\n/// Casts a string into a number\n///\n/// @param {String | Number} $value - Value to be parsed\n///\n/// @return {Number}\n///\n@function to-number($value) {\n @if type-of($value) == \"number\" {\n @return $value;\n } @else if type-of($value) != \"string\" {\n $_: im-log(\"Value for `to-number` should be a number or a string.\");\n }\n\n $first-character: str-slice($value, 1, 1);\n $result: 0;\n $digits: 0;\n $minus: ($first-character == \"-\");\n $numbers: (\n \"0\": 0,\n \"1\": 1,\n \"2\": 2,\n \"3\": 3,\n \"4\": 4,\n \"5\": 5,\n \"6\": 6,\n \"7\": 7,\n \"8\": 8,\n \"9\": 9,\n );\n\n // Remove +/- sign if present at first character\n @if ($first-character == \"+\" or $first-character == \"-\") {\n $value: str-slice($value, 2);\n }\n\n @for $i from 1 through str-length($value) {\n $character: str-slice($value, $i, $i);\n\n @if not(index(map-keys($numbers), $character) or $character == \".\") {\n @return to-length(if($minus, -$result, $result), str-slice($value, $i));\n }\n\n @if $character == \".\" {\n $digits: 1;\n } @else if $digits == 0 {\n $result: $result * 10 + map-get($numbers, $character);\n } @else {\n $digits: $digits * 10;\n $result: $result + map-get($numbers, $character) / $digits;\n }\n }\n\n @return if($minus, -$result, $result);\n}\n\n///\n/// Add `$unit` to `$value`\n///\n/// @param {Number} $value - Value to add unit to\n/// @param {String} $unit - String representation of the unit\n///\n/// @return {Number} - `$value` expressed in `$unit`\n///\n@function to-length($value, $unit) {\n $units: (\n \"px\": 1px,\n \"cm\": 1cm,\n \"mm\": 1mm,\n \"%\": 1%,\n \"ch\": 1ch,\n \"pc\": 1pc,\n \"in\": 1in,\n \"em\": 1em,\n \"rem\": 1rem,\n \"pt\": 1pt,\n \"ex\": 1ex,\n \"vw\": 1vw,\n \"vh\": 1vh,\n \"vmin\": 1vmin,\n \"vmax\": 1vmax,\n );\n\n @if not index(map-keys($units), $unit) {\n $_: im-log(\"Invalid unit `#{$unit}`.\");\n }\n\n @return $value * map-get($units, $unit);\n}\n\n///\n/// This mixin aims at redefining the configuration just for the scope of\n/// the call. It is helpful when having a component needing an extended\n/// configuration such as custom breakpoints (referred to as tweakpoints)\n/// for instance.\n///\n/// @author Kitty Giraudel\n///\n/// @param {Map} $tweakpoints [()] - Map of tweakpoints to be merged with `$breakpoints`\n/// @param {Map} $tweak-media-expressions [()] - Map of tweaked media expressions to be merged with `$media-expression`\n///\n/// @example scss - Extend the global breakpoints with a tweakpoint\n/// @include media-context(('custom': 678px)) {\n/// .foo {\n/// @include media('>phone', '<=custom') {\n/// // ...\n/// }\n/// }\n/// }\n///\n/// @example scss - Extend the global media expressions with a custom one\n/// @include media-context($tweak-media-expressions: ('all': 'all')) {\n/// .foo {\n/// @include media('all', '>phone') {\n/// // ...\n/// }\n/// }\n/// }\n///\n/// @example scss - Extend both configuration maps\n/// @include media-context(('custom': 678px), ('all': 'all')) {\n/// .foo {\n/// @include media('all', '>phone', '<=custom') {\n/// // ...\n/// }\n/// }\n/// }\n///\n@mixin media-context($tweakpoints: (), $tweak-media-expressions: ()) {\n // Save global configuration\n $global-breakpoints: $breakpoints;\n $global-media-expressions: $media-expressions;\n\n // Update global configuration\n $breakpoints: map-merge($breakpoints, $tweakpoints) !global;\n $media-expressions: map-merge(\n $media-expressions,\n $tweak-media-expressions\n ) !global;\n\n @content;\n\n // Restore global configuration\n $breakpoints: $global-breakpoints !global;\n $media-expressions: $global-media-expressions !global;\n}\n\n////\n/// include-media public exposed API\n/// @author Eduardo Boucas\n/// @access public\n////\n\n///\n/// Generates a media query based on a list of conditions\n///\n/// @param {Arglist} $conditions - Media query conditions\n///\n/// @example scss - With a single set breakpoint\n/// @include media('>phone') { }\n///\n/// @example scss - With two set breakpoints\n/// @include media('>phone', '<=tablet') { }\n///\n/// @example scss - With custom values\n/// @include media('>=358px', '<850px') { }\n///\n/// @example scss - With set breakpoints with custom values\n/// @include media('>desktop', '<=1350px') { }\n///\n/// @example scss - With a static expression\n/// @include media('retina2x') { }\n///\n/// @example scss - Mixing everything\n/// @include media('>=350px', ' 0) {\n @media #{unquote(parse-expression(nth($conditions, 1)))} {\n // Recursive call\n @include media(slice($conditions, 2)...) {\n @content;\n }\n }\n }\n}\n","%heading {\n font-family: $font-display;\n font-weight: 400;\n}\n\n.heading-1 {\n @extend %heading;\n font-size: 4.5rem;\n color: $color-grey-light-1;\n line-height: 1;\n}\n\n.heading-2 {\n @extend %heading;\n font-size: 4rem;\n font-style: italic;\n line-height: 1;\n\n &--light {\n color: $color-grey-light-1;\n }\n\n &--dark {\n color: $color-grey-dark-1;\n }\n}\n\n.heading-3 {\n @extend %heading;\n font-size: 1.6rem;\n color: $color-primary;\n text-transform: uppercase;\n}\n\n.heading-4 {\n @extend %heading;\n font-size: 1.9rem;\n\n &--light {\n color: $color-grey-light-1;\n }\n\n &--dark {\n color: $color-grey-dark-1;\n }\n}\n\n.btn {\n background-color: $color-primary;\n color: #fff;\n border: none;\n border-radius: 0;\n font-family: $font-display;\n font-size: 1.5rem;\n text-transform: uppercase;\n padding: 1.8rem 3rem;\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n background-color: $color-primary-dark;\n }\n}\n",".mb-sm {\n margin-bottom: 2rem;\n}\n.mb-md {\n margin-bottom: 3rem;\n}\n.mb-lg {\n margin-bottom: 4rem;\n}\n.mb-hg {\n margin-bottom: 8rem;\n}\n",".sidebar {\n background-color: $color-primary;\n grid-column: sidebar-start / sidebar-end;\n grid-row: 1 / -1;\n display: flex;\n justify-content: center;\n\n @include media(\"